package com.tianyi.springcloud.eureka.client.config;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@SpringBootApplication
@EnableEurekaClient
@EnableConfigServer
public class SpringcloudEurekaClientConfigApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringcloudEurekaClientConfigApplication.class, args);
    }
//当我们满怀期待的觉的项目可以正常运行的时候，我们发现项目启动居然报错了。这是为什么呢？
// 按照我们之前搭建注册中心时我们的理解。配置中心是不是也会提供一个什么管理界面之类的。
// 但结果让我们很意外，程序居然抛出了异常。这到底是为什么呢？
// 这是因为我们之前介绍过配置中心也不会保存其它服务的配置信息的，而是从远程仓库中获取配置信息，
// 然后将配置信息暂存到本地，然后在对外提供服务。
// 所以上述错误的根本原因是因为我们没有配置远程仓库的地址。如果我们观察仔细的话，我们可以通过上述的错误日志发现
// ，日志已经提示我们没有配置远程仓库的地址了，也就是日志中的Git URI。下面我们配置一下配置中心的远程仓库地址。在配置之前，我们首先要创建一个远程仓库。
// 错误:
//If you are using the git profile, you need to set a Git URI in your configuration.  If you are using a native profile and have spring.cloud.config.server.bootstrap=true, you need to use a composite configuration.

//    直接访问http://127.0.0.1:8081/client.yml我们看接口的返回还是出错。
//    刚刚不是说SpringCloud自动为我们处理吗?这是因为我们在通过配置中心访问远程仓库文件时有一个特殊的规则。
//    就是:仓库文件名-随机名.后缀。只有这样配置中心才会正确的返回远程仓库中的配置信息。也就是下面的访问路径:
//    http://127.0.0.1:8081/client-test.yml 正确

//    那就是配置中心在从远程仓库获取配置信息时，除了要获取client-dev.yml文件外，还会获取client.yml。
//    然后将这两份文件的内容合并在一起给服务返回。因为我们没有client-dev.yml文件，
//    所以我们在访问client-dev.yml时就会直接获取client.yml文件的内容。
}
